<?php
 abstract class Pessoa extends Objeto{
	 private $id;
	 private $nome;
	 private $email;
	 private $telefone;
	 private $login;
	 private $senha;
	 private $enderecos;
	 
	  // atributos de instância de Pessoa
	  // ------------ ### ------------- //
	
	  // métodos construtores e destrutores
	   public function __construct($id = "", $nome = "", $email = "", 
	                              $telefone = "", $login = "", 
	                              $senha = "", $endereco = "") {
			$this->setId($id);
			$this->setNome($nome);
			$this->setEmail($email);
			$this->setTelefone($telefone);
			$this->setSenha($senha);	                        
	                              		
		 	if ($endereco != "") {
	     	 $this->adicionarEndereco($endereco);
			} 
		
        }
        
		protected function validarCamposBasicos(){
			
			// conferindo métodos comuns de Pessoa
			  if (trim($this->getNome()) == "" ||
				trim($this->getEmail()) == "" ||
			    trim($this->getLogin()) == "" ||
			    strlen(trim($this->getNome())) < 6) {
			    return false;
			  }
			  return true;
			
		}
		
        public function adicionarEndereco(Endereco $endereco){
        	
        	$this->enderecos[] = $endereco; 
        	
        }
        public function __destruct() {
	    	unset($this->enderecos);
		} 
	  // ------------ ### ------------- //
	
	  // demais métodos de negócio
	  // ------------ ### ------------- //
	
	  // métodos getters e setters
	  // ------------ ### ------------- //
	  public function setId($id){
	  	$this->id = $id;
	  }
	  public function getId(){
	  	return $this->id;
	  }
	  public function setNome($nome){
	  	$this->nome = $nome;
	  }
	  public function getNome(){
	  	return $this->nome;
	  }
	  public function setEmail($email){
	  	$this->email = $email;
	  }
	  public function getEmail(){
	  	return $this->email;
	  }
	  public function setLogin($login){
	  	$this->login = $login;
	  }
	  public function getLogin(){
	  	return $this->login;
	  }
	  public function setSenha($senha){
	  	$this->senha = $senha;
	  }
	  public function getSenha(){
	  	return $this->senha;
	  }
	  public function setTelefone($telefone){
	  	$this->telefone = $telefone;
	  }
	  public function getTelefone(){
	  	return $this->telefone;
	  }
	}
?>
